package com.swa99ylum.pjv.validator;

import java.util.Arrays;
import java.util.Map;

import com.swa99ylum.pjv.exception.JSONValidateException;

/** <h1>包含 验证器</h1>
<br> 验证 value 必须 能匹配 某一个 列表中的 正则表达式
<br> 
<br> 注意：
<br> 由于 继承自 PatternValidator，即 使用 正则表达式 进行匹配，而不是用 String.equals(obj)，
<br> 所以在写  included 列表中的 元素时，应当要根据需要 进行转义
 */
public class InclusionValidator extends PatternValidator {
	
	
	private String[] included;
	

	public InclusionValidator(String[] included) {
		super();
		this.included = included;
	}
	
	@Override
	public void doValidate(Object rootObject, String[] nodePath, String nodeName, Map<String, Object> parentValue, Object value) throws JSONValidateException {
		
		for (String ele : included) {
			if(match(ele, String.valueOf(value))) return;
		}
		throw new JSONValidateException(nodePath, value, "必须是 列表中的值：" + Arrays.toString(included)); 
	}
	
	
	public static void main(String[] args) {
//		Exception e = new Exception("与 预期值 不相等");
//		System.out.println(e.getMessage());
		
		String[] aaa = new String[] {"aaa", "bbb", "ccc"};
		System.out.println(Arrays.toString(aaa));
	}
	

}
